package com.example.demo.util;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 时间工具类
 * @author admin
 *
 */
public class DateUtil {
	
	/**
	 * 
	 * @方法名 DateUtil.java
	 * @创建者 xzw
	 * @创建日期 2021年11月3日
	 * @返回类型 String
	 * @功能描述 获取今天日期 格式dd
	 *
	 */
	public static String getDayOfMonth() {
		return new SimpleDateFormat("dd").format(new Date());
	}
	
	/**
	 * 
	 * @title getNowDay
	 * @author: 许子文
	 * @date: 2021年9月30日
	 * @description: 获取今日日期
	 *
	 */
	public static String getNowDayWithoutLink () {
		return new SimpleDateFormat("yyyyMMdd").format(new Date());
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: 获取本月最后一天
	 *
	 */
	public static String getLastDayOfNowMonth() {
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
		String lastDay = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
		return lastDay;
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: yyyy-MM-dd HH:mm:ss格式日期转换为13位shijianchuo
	 *
	 */
	public static long dateToTS13(String dateStr) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = sdf.parse(dateStr);
		return date.getTime();
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: yyyy-MM-dd HH:mm:ss格式时间转换为10位时间戳
	 *
	 */
	public static int dateToTS10(String dateStr) throws Exception {
		return (int)(Timestamp.valueOf(dateStr).getTime()/1000);
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: 10位时间戳转换为yyyy-MM-dd HH:mm:ss格式时间
	 *
	 */
	public static String ts10ToDateStr(int timeStamp) throws Exception {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		
		long temp = timeStamp*1000;
		
		Date date = new Date(temp);
		
		return sdf.format(date);
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: 13位时间戳转换为yyyy-MM-dd HH:mm:ss格式时间
	 *
	 */
	public static String ts13ToDateStr(long timeStamp) throws Exception {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		
		Date date = new Date(timeStamp);
		
		return sdf.format(date);
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: 获取本周是本月的第几周
	 *
	 */
	public static int getNowWeekTimes() {
		Calendar cal = Calendar.getInstance();
		int weekTimes = cal.get(Calendar.WEEK_OF_MONTH);
		return weekTimes;
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: 获取本月月份
	 *
	 */
	public static String getNowMonth() {
		return new SimpleDateFormat("MM").format(new Date());
	}
	
	/**
	 * 
	 * @return
	 * @创建时间: 2020年8月24日
	 * @创建人: 许子文
	 * @功能描述: 获取本年年份
	 *
	 */
	public static String getNowYear() {
		return new SimpleDateFormat("yyyy").format(new Date());
	}
	
	/**
	 * @return
	 * @创建时间 2019年6月26日
	 * @创建人 许子文
	 * @功能描述: 获取   年-月-日 时:分:秒  格式的当前时间
	 */
	public static String getNowDateTime() {
		String nowTime = null;
		Date date = new Date();
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		
		nowTime = sdf.format(date);
		
		return nowTime;
	}
}
